
function myCall(target, ...args) {
  var context = target || window;
  context.fn = this;
  const ret = context.fn(...args)
  Reflect.deleteProperty(context, 'fn')
  return ret
}


function myApply(target, args) {
  var context = target || window;
  context.fn = this;
  const ret
  if (Array.isArray(args)) {
    ret = context.fn(...args)
  } else {
    ret = context.fn()
  }
  Reflect.deleteProperty(context, 'fn')
  return ret
}
